import socket


def main():
    #  socket创建一个套接字
    tcp_server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    
    #一定要绑定IP和端口，就跟110一样，是固定的让人随时能知道
    tcp_server.bind(('',7788))

    #listen使套接字变成可以被动链接
    tcp_server.listen(128)

    #  循环为多个客户端服务
    while True:
        
        #accept等待客户端的链接
        print('等待一个新的客户端的到来~~~~~')
        client_socket,client_add = tcp_server.accept()
        print('一个新的客户端来了~~~~~')
        #  循环为一个客户服务
        while True:    
            #recv/send接受发送数据额
            recv_data = client_socket.recv(1024)  #  因为前面已经知道IP和端口了
            recv_data =recv_data.decode('gbk')
            if recv_data :
                print(recv_data)                      #  所以只有数据不是元组
                #回送数据
                client_socket.send('OK接收到了 '.encode('gbk'))
            else:
                break
        


        #关闭这个套接字相当于不为这个客人服务了
        client_socket.close()

    #  如果关闭这个客户端相当于银行关了
    tcp_server.close()
    
if __name__ == '__main__':
    main()
